#include "types.h"

#ifndef __MAP_H
#define __MAP_H

#define MAX_MAP_WIDTH 512
#define MAX_MAP_DEPTH 512

typedef id_t TILE_TYPE;
static const TILE_TYPE TILE_FLOOR	= 0;
static const TILE_TYPE TILE_WALL	= 1;
static const TILE_TYPE TILE_LAVA	= 2;
static const TILE_TYPE TILE_WATER	= 3;
static const TILE_TYPE TILE_DOOR	= 4;

struct SMap
{
	// Data
	uint16_t	Width;
	uint16_t	Depth;
	id_t		CellsFloor[MAX_MAP_DEPTH][MAX_MAP_WIDTH];
	id_t		CellsCharacter[MAX_MAP_DEPTH][MAX_MAP_WIDTH];
	id_t		CellsItem[MAX_MAP_DEPTH][MAX_MAP_WIDTH];

	// Constructors
	SMap();
	SMap( uint16_t width, uint16_t depth );

	// Methods
	void		Init( uint16_t width, uint16_t depth );
	void		ClearCells();
	void		ClearCellsFloor();
	void		ClearCellsCharacter();
	void		ClearCellsItem();
};

#endif // _MAP_H